package cn.easier.activity.console.service;

import cn.easier.activity.console.entity.ActivityConsoleRole;
import cn.easier.activity.console.entity.ActivityConsoleUser;
import cn.easier.activity.console.entity.ActivityRoleUser;
import cn.easier.activity.console.entity.UserParams;
import cn.easier.club.base.dto.ResultInfo;

import java.util.List;
import java.util.Set;

/**
 * 后台用户service
 */
public interface ActivityConsoleUserService {

    /**
     * 获取用户信息
     *
     * @param id id
     * @return
     */
    public ActivityConsoleUser findOne(Integer id);

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return
     */
    public ActivityConsoleUser findByName(String username);

    /**
     * 创建
     *
     * @param activityConsoleUser 用户信息
     * @return
     */
    public ActivityConsoleUser save(ActivityConsoleUser activityConsoleUser);

    /**
     * 修改用户信息
     *
     * @param activityConsoleUser 用户信息
     * @return
     */
    public ActivityConsoleUser update(ActivityConsoleUser activityConsoleUser);

    /**
     * 修改可用状态
     *
     * @param id      id
     * @param enabled 是否可用
     * @return
     */
    ResultInfo changeEnabled(Integer id, boolean enabled);

    /**
     * 修改可用权限(修改用户权限树时使用)
     *
     * @param id                     id
     * @param activityConsoleRoleSet 权限集合
     * @return
     */
    public boolean changeAuthorities(Integer id, Set<ActivityConsoleRole> activityConsoleRoleSet);

    /**
     * 获取所有用户信息
     *
     * @return
     */
    public List<ActivityConsoleUser> findAll();

    List<Object> getUserMessage(int pageNum, int pageSize, String userName);

    ResultInfo updateUser(UserParams userParams);

    ResultInfo saveMessage(UserParams userParams);

    ActivityRoleUser getUserRole(String userName);
}
